import { NgModule } from '@angular/core';
import { SharedModule } from '@shared/shared.module';
import { SystemRoutingModule } from './system-routing.module';

import { UserManagementComponent } from './user-management/user-management.component';
import { EditUserComponent } from './user-management/edit-user/edit-user.component';
import { RoleManagementComponent } from './role-management/role-management.component';
import { EditRoleComponent } from './role-management/edit-role/edit-role.component';
import { CompanyManagementComponent } from './company-management/company-management.component';
import { EditCompanyComponent } from './company-management/edit-company/edit-company.component';
import { SiteManagementComponent } from './site-management/site-management.component';
import { EditSiteComponent } from './site-management/edit-site/edit-site.component';
import { ResourceManagementComponent } from './resource-management/resource-management.component';
import { EditResourceComponent } from './resource-management/edit-resource/edit-resource.component';
import { MenuManagementComponent } from './menu-management/menu-management.component';
import { ApiDocsComponent } from './api-docs/api-docs.component';
import { ModuleManagementComponent } from './module-management/module-management.component';
import { BaseTypeManagementComponent } from './base-type-management/base-type-management.component';
import { EditBaseTypeKeysComponent } from './base-type-management/edit-base-type-keys/edit-base-type-keys.component';
import { EditBaseTypeValuesComponent } from './base-type-management/edit-base-type-values/edit-base-type-values.component';

const COMPONENTS = [
  UserManagementComponent,
  RoleManagementComponent,
  CompanyManagementComponent,
  SiteManagementComponent,
  ResourceManagementComponent,
  MenuManagementComponent,
  ApiDocsComponent,
  ModuleManagementComponent,
  BaseTypeManagementComponent
];

const COMPONENTS_NOROUNT = [
  EditUserComponent,
  EditRoleComponent,
  EditCompanyComponent,
  EditSiteComponent,
  EditResourceComponent,
  EditBaseTypeKeysComponent,
  EditBaseTypeValuesComponent
];

@NgModule({
  imports: [
    SharedModule,
    SystemRoutingModule
  ],
  providers: [],
  declarations: [...COMPONENTS, ...COMPONENTS_NOROUNT],
  exports: [...COMPONENTS, ...COMPONENTS_NOROUNT],
  entryComponents: [...COMPONENTS_NOROUNT]
})
export class SystemModule { }
